home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / GermanAntiair.script < prev    next >
Text File  |  2001-10-22  |  4KB  |  158 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CGermanAntiairMesh
  11. {
  12.   string MeshFile = "Models/G_Antiair.mesh";
  13.   string SkinFile = "Models/G_Antiair.skin";
  14.   string AnimFile = "Models/G_Antiair.anim";
  15. }
  16.  
  17. class CGermanAntiairStateControl extends CMobileGroundUnitStateControl
  18. {
  19.   void CGermanAntiairStateControl()
  20.   {
  21.     CMobileGroundUnitStateControl(500.0);
  22.     m_DestroyPause = 7.5;
  23.     m_ExplosionId  = "EXPLID_GermanAntiairExplosion";
  24.   }
  25. }
  26.  
  27. class CGermanAntiairTargetingAnimator
  28. {
  29.   string HorAnimName    = "tower";
  30.   string VerAnimName    = "gun";
  31.  
  32.   float  LeftEndAngle   = -180.0;
  33.   float  RightEndAngle  =  180.0;
  34.   float  TopEndAngle    = -5.0;
  35.   float  BottomEndAngle =  50.0;
  36.  
  37.   float  MaxAngleSpeed  = 180.0;
  38. }
  39.  
  40. class CGermanAntiairGun extends CBaseWeaponDescriptor
  41. {
  42.   int    AmmoQuantity      = -1;
  43.   float  BulletSpeed       = 600.0;
  44.   float  FireDeviation     = 0.015;
  45.   string BulletPatternId   = "BULLETID_GermanAntiairGunBullet";
  46.   string LinkJointName     = "";
  47.   string EffectOnFire      = "EFFECTID_AntiairGunFireEffect";
  48.   string SoundOnFire       = "SOUNDID_AntiairGunFireSound";
  49.  
  50.   string WeaponName        = "Gun";
  51.   float  FireWeaponDelay   = 0.1;
  52.   bool   IsAutotargeting   = false;
  53.   int    AttachSlotNumber  = 1;
  54. }
  55.  
  56. class CGermanAntiairGun_1 extends CGermanAntiairGun
  57. {
  58.   string LinkJointName = "_Gun_Fire_01";
  59. }
  60.  
  61. class CGermanAntiairGun_2 extends CGermanAntiairGun
  62. {
  63.   string LinkJointName = "_Gun_Fire_02";
  64. }
  65.  
  66. class CGermanAntiairGun_3 extends CGermanAntiairGun
  67. {
  68.   string LinkJointName = "_Gun_Fire_03";
  69. }
  70.  
  71. class CGermanAntiairGun_4 extends CGermanAntiairGun
  72. {
  73.   string LinkJointName = "_Gun_Fire_04";
  74. }
  75.  
  76. class CGermanAntiairBehavior extends
  77.     CBaseBehavior,
  78.     CGermanAntiairMoveParameters,
  79.     CGermanAntiairFireParameters,
  80.     CGermanAntiairRadarParameters
  81. {
  82.   void CGermanAntiairBehavior()
  83.   {
  84.     CBaseBehavior();
  85.   }
  86. }
  87.  
  88. class CGermanAntiairMoveParameters
  89. {
  90.   boolean  CanMove               = true;
  91.   float    MaxSpeed              = 25;  // m/s
  92.   float    MaxAngleSpeed         = 8;   // rad/s
  93.   float    MaxAccelleration      = 25;  // m/(s*s)
  94.   float    MaxAngleAccelleration = 25;  // rad/(s*s)
  95.  
  96.   float  MoveBank     = -.03; //#TMP:
  97.   float  RotationBank = .006;   //#TMP:
  98. }
  99.  
  100. class CGermanAntiairFireParameters
  101. {
  102.   boolean  CanFire = true;
  103.  
  104.   int  FirePeriod        = 200; // ms
  105.   int  FirePeriodRandAdd = 100; // ms
  106.   int  ShootGunNum = 1;
  107.  
  108.   boolean  BurstFire = true;
  109.   int  BurstTime         = 2000; // ms
  110.   int  BurstTimeRandAdd  = 1000; // ms
  111.  
  112.   int  BurstDelay        = 1000; // ms
  113.   int  BurstDelayRandAdd = 2000; // ms
  114. };
  115.  
  116. class CGermanAntiairRadarParameters
  117. {
  118.   boolean  HasRadar = true;
  119.  
  120.   float  MaxRadarDistance = 1500; // m
  121.   float  MinRadarDistance = 10;   // m
  122.  
  123.   int    UpdateRadarPeriod        = 2000; // ms
  124.   int    UpdateRadarPeriodRandAdd = 1000; // ms
  125.  
  126.   boolean  FireFlying = true;
  127.   boolean  FireGround = false;
  128. };
  129.  
  130.  
  131. class CGermanAntiair extends
  132.   CGroundUnit,
  133.   CArmedUnit,
  134.   CUnitWithSound,
  135.   CUnitWithCamera,
  136.   CUnitWithStateControl,
  137.   CUnitWithBehavior
  138. {
  139.   void CGermanAntiair()
  140.   {
  141.     InitializeModelAsAnimated("CGermanAntiairMesh");
  142.     CUnitWithStateControl("CGermanAntiairStateControl");
  143.     InitializeSound("CGermanAntiairEngineSound");
  144.  
  145.     CreateAnimatedWeapon("Gun_1", "CGermanAntiairGun_1", "CGermanAntiairTargetingAnimator");
  146.     CreateStaticWeapon("Gun_2", "CGermanAntiairGun_2");
  147.     CreateStaticWeapon("Gun_3", "CGermanAntiairGun_3");
  148.     CreateStaticWeapon("Gun_4", "CGermanAntiairGun_4");
  149.  
  150.     InitializeVehicleBehavior("CGermanAntiairBehavior");
  151.  
  152.     Core_AddClassificator("German");
  153.     Core_AddClassificator("AntiAir");    // for cockpit identification
  154.     Core_AddClassificator("GroundUnit"); // for behavior fire logic
  155.   }
  156. }
  157.  
  158.